package day17.springdemo1;

import org.dom4j.DocumentException;

import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;

/**
 * @author Xiao
 * @date 2021/8/12
 */
public class Test {
    /**
     * /*
     * 模拟Spring框架最核心的功能：
     *     JavaEE的灵魂框架
     * 1. IOC：
     *     让spring帮我们创建对象
     *     想要让spring帮我们创建对象，你至少得告知框架想创建谁的对象？
     *     使用者：
     *         1. 定义配置文件
     *         2. 在配置文件中定义要创建的对象类名
     *     框架：
     *         3. 读取配置文件
     *         4. 获取类名
     *         5. 反射创建对象，返回对象
     *     需求：
     *          通过读取配置文件创建配置文件中标签对应的类的对象
     */

    public static void main(String[] args) throws DocumentException, ClassNotFoundException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException {
        //创建ApplicationContext对象，传入xml配置文件
        ApplicationContext ac = new ClasspathxmlApplicationContext("classpractice/src/day17/springdemo1/spring.xml");
        Person person = ac.getBean("Person", Person.class);
        System.out.println(person);
        ArrayList<String> list = (ArrayList<String>) ac.getBean("ArrayList");
        list.add("a");
        list.add("b");
        list.add("c");
        System.out.println(list);
    }
}
